#ifndef PARKCLARK_H
#define PARKCLARK_H

typedef struct abc_current{
    float ia;
    float ib;
    float ic;
} abc_current;

typedef abc_current* abc_current_handle;

typedef struct alphabeta_current{
    float ialpha;
    float ibeta;
} alphabeta_current;

typedef alphabeta_current* alphabeta_current_handle;

typedef struct dq_current{
    float id;
    float iq;
} dq_current;

typedef dq_current* dq_current_handle;

typedef struct dq_voltage{
    float ud;
    float uq;
} dq_voltage;

typedef dq_voltage* dq_voltage_handle;

typedef struct alphabeta_voltage{
    float ualpha;
    float ubeta;
} alphabeta_voltage;

typedef alphabeta_voltage* alphabeta_voltage_handle;


// float electrical_angle;



void clark_transform(abc_current_handle abc_ptr,alphabeta_current_handle alphabeta_ptr);
void park_transform(dq_current_handle dq_ptr,alphabeta_current_handle alphabeta_ptr,float electrical_angle);
 
void park_inverse_transform(dq_voltage_handle dq_ptr,alphabeta_voltage_handle alphabeta_ptr,float electrical_angle);


// 文件内容

#endif // FOC_H
